python实战项目 — selenium登陆豆瓣

 利用selenium 模仿浏览器,登陆豆瓣

重点: 

1. 要设置好 chromedriver配置与使用, chromedriver.exe 和 Chrome的浏览器版本要对应, http://chromedriver.storage.googleapis.com/index.html 

2. Js代码写完可以在浏览器F12的控制台交互测试一下

 

 

from selenium import webdriver
import time

driver = webdriver.Chrome()
driver.get('https://www.douban.com/')
driver.implicitly_wait(1)

# 切换iframe子框架
driver.switch_to.frame(driver.find_elements_by_tag_name("iframe")[0])

# 最大化窗口
driver.maximize_window()
# 点击密码登录的标签
driver.find_element_by_css_selector('li.account-tab-account').click()

# 输入账号之前清理默认的字符
driver.find_element_by_id('username').clear()
driver.find_element_by_id('username').send_keys('17620xxxxx')
driver.find_element_by_id('password').clear()
driver.find_element_by_id('password').send_keys('123456@#')

# 点击‘登录豆瓣’按钮
# 这里需要注意,当元素的class属性有好几个的时候,此函数的参数填class的第一个就好
# 元素的class属性:btn btn-account
driver.find_element_by_class_name('btn').click()
time.sleep(2)

# 向下滚动10000像素,JS写法,可以直接在F12控制台做交互测试代码准确性
js = 'document.documentElement.scrollTop=10000'
#js = 'var q=document.documentElement.scrollTop=10000'
driver.execute_script(js)

driver.implicitly_wait(5)
# 停2秒后,抓取快照
driver.save_screenshot('D:\\douban.jpg')

# 保存源码
with open('D:\\douban_shouye.html', 'w', encoding='utf-8') as f:
    f.write(driver.page_source)

driver.quit()
print('wanle')

  

posted @ 2019-09-17 17:39  FishMan552  阅读(658)  评论(0编辑  收藏  举报